<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>简介</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="book.stream.html">« Stream</a></li>
      <li style="float: right;"><a href="stream.setup.html">安装/配置 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="book.stream.html">Stream</a></li>
    <li>简介</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="intro.stream" class="preface">
   <h1 class="title">简介</h1>
   <p class="simpara">
    流是概括文件、网络、数据压缩和其它操作的方式，共享一组通用的函数和用途。在其的简单定义中，<code class="literal">stream</code>
    是表现可流动行为的 <code class="literal">resource</code> 对象。也就是说，它可以以线性的方式读写，并且可以 <span class="function"><a href="function.fseek.html" class="function">fseek()</a></span>
    到流中的任意位置。
   </p>
   <p class="simpara">
    <code class="literal">wrapper</code> 是附加代码，用于告诉流如何处理指定协议/编码。例如，<code class="literal">http</code> 封装协议知道如何将 URL
    转换为 <code class="literal">HTTP/1.0</code> 请求远程服务器上的文件。默认情况下，PHP 内置了很多封装协议（参阅 <a href="wrappers.html" class="xref">支持的协议和封装协议</a>），另外也可以直接从 PHP 脚本中使用 <span class="function"><a href="function.stream-wrapper-register.html" class="function">stream_wrapper_register()</a></span>
    或者直接从扩展中添加自定义封装协议。
    因为任何种类的封装协议都可以添加到 PHP 中，所以对它们可以做什么并没有限制。使用
    <span class="function"><a href="function.stream-get-wrappers.html" class="function">stream_get_wrappers()</a></span> 访问当前已注册封装协议列表。
   </p>
   <p class="para">
    流作为 <code class="parameter">scheme</code>://<code class="parameter">target</code> 引用
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       <code class="parameter">scheme</code>（string）——要使用的封装协议名称。示例为
       file、http、https、ftp、ftps、compress.zlib、compress.bz2 和 php。PHP 内置封装协议列表，参阅<a href="wrappers.html" class="xref">支持的协议和封装协议</a>。如果没有指定封装协议，函数使用默认值（通常是 <code class="literal">file</code>://）。
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <code class="parameter">target</code>——取决于要使用的封装协议。对于文件系统相关的流，这通常是所需文件的路径和文件名。对网络相关的流，这通常是主机名，通常跟着路径。再有，请参阅<a href="wrappers.html" class="xref">支持的协议和封装协议</a> 获取对流内置目标的描述。
      </span>
     </li>
    </ul>
   </p>
  </div></div></div></body></html>